#include <iostream>
#include <string>
#include <unistd.h>
using namespace std;

// 实现x+y=res 返回错误码的实验

class Task
{
public:
    Task() // 无参构造
    {
    }
    Task(int x, int y, char op) // 传参构造
        : _x(x),
          _y(y),
          _op(op),
          _res(0),
          _exitcode(0)
    {
    }

    ~Task()
    {
    }

    void operator()() // 仿函数实现
    {
        if (_op == '+')
        {
            _res = _x + _y;
        }
        else if (_op == '-')
        {
            _res = _x - _y;
        }
        else if (_op == '*')
        {
            _res = _x * _y;
        }
        else if (_op == '/')
        {
            if (_y == 0)
            {
                _exitcode = -1;
            }
            else
            {
                _res = _x / _y;
            }
        }
        else if (_op == '%')
        {
            if (_y == 0)
            {
                _exitcode = -2;
            }
            else
            {
                _res = _x % _y;
            }
        }
    }

    string Print_oper()
    {
        return to_string(_x) + _op + to_string(_y) + "=?";
    }

    string Print_res()
    {
        return to_string(_res) + '[' + to_string(_exitcode) + ']';
    }

private:
    int _x;
    int _y;
    char _op;
    int _res;
    int _exitcode;
};